The invention relates to a coordinate measuring apparatus having drives for adjusting the components of the apparatus. The drives are adjusted sequentially at a fixed defined clock frequency in accordance with pregiven desired drive values. The invention also relates to a method for operating the coordinate measuring apparatus.
A coordinate measuring apparatus of this kind is already known from the state the of the art and is described in detail, for example, in U.S. Pat. Nos. 5,471,406 and 5,726,917. In the coordinate measuring apparatus shown herein, first data as to the geometric elements of the workpiece to be measured are transmitted from a computer to a control arrangement. The control arrangement then generates desired drive values from the data and these values are transmitted further to the drives of the coordinate measuring apparatus. For example, the control arrangement generates so-called desired position values which are sequentially transmitted to the position control loops of the drives for moving the probe head in the three coordinate measuring directions in a fixed defined clock frequency and are then correspondingly executed by the drives. The same is true for the desired measuring force which is imparted to the probe pin via the measuring force generators. This desired measuring force too is computed in advance in correspondence to the geometry of the geometric element to be scanned and is correspondingly transmitted to the measuring force generators during scanning.
During scanning of the workpiece, the respective machine positions of the probe head in the three coordinate measuring directions as well as the probe pin deflection are detected and are evaluated in the control arrangement.
The desired drive values, which are generated by the control arrangement, are so computed that they are applied to the drives sequentially at a clock frequency because, otherwise, problems could occur in the measuring sequence. For example, the desired position values are so computed that the drives move the probe head in accordance with a velocity profile and an acceleration profile. If the desired position values are, however, not sequentially moved to precisely at the clock frequency as a function of time, then this can lead to excessively large braking and start-up accelerations in the drives of the coordinate measuring apparatus which can rapidly lead to excessive loading of the apparatus.
Stated otherwise, it is of equal importance that the measured measurement values (such as the probe pin deflection, that is, the deflection of the probe pin relative to the probe head) or the machine positions (that is, the positions of the probe head in the machine coordinate system) are always correctly detected as a function of time because, otherwise, individual measuring points (which measuring points are required for the evaluation of measurement data as well as for readjusting the precomputed desired position values) could no longer be correctly evaluated.
In the coordinate measuring apparatus disclosed in U.S. Pat. Nos. 5,471,406 and 5,726,917, this real time performance is achieved in that the individual components of the control arrangement are configured as microprocessors which exhibit a very good real time performance and for which making ready the desired position values for the control loops of the drives as well as the detection of the measured values define no problems whatsoever.
In recent times, there are more cost-effective and more powerful computers available in the marketplace so that increasingly the desire develops to let the central processor of the evaluating computer execute the operation of the control arrangement which, up to now, has been performed by microprocessors. However, this desire could not be realized without considerable additional complexity because the operating systems for the corresponding computers, which are today available such as UNIX, LINUX, WINDOWS 95, WINDOWS NT, et cetera, have no or only an inadequate real time performance. Real time performance is here understood to be that the computer exhibits time spans of longer than 0.1 milliseconds in which the computer cannot transmit desired drive values to the drives and in which the computer likewise cannot receive measured values.
Implementing the control units as software in a computer of this kind would perforce lead to the condition that some generated desired drive values would be lost with the consequence that, for example, the mechanics of the coordinate measuring apparatus would thereby be inexorably overloaded or that individual measured values would be lost which would lead to the condition that a reasonable readjustment of the desired position values or a reasonable evaluation of the measured values could no longer be ensured.
It is an object of the invention to provide a coordinate measuring apparatus wherein as many functions of the control arrangement as possible can be taken over by a computer having an operating system without real time performance as well as a method with which this is possible.
The coordinate measuring apparatus of the invention has a component unit for measuring a workpiece and the apparatus includes: a plurality of drives for moving the component unit to scan the workpiece; a control computer for sequentially generating pregiven sets of desired drive values (Li, Fdes) in accordance with which the drives are correspondingly adjusted at a fixed clock frequency; scanning devices for detecting several measured sets of values (XT, YT, ZT, Xm, Ym, Zm, Fix, Fiy, Fiz) at the fixed clock frequency during a measuring sequence; the control computer having an operating system without real-time performance wherein the desired drive values are computed; a subassembly operating to execute at least one of the following functions: (a) several sets of the desired drive values are stored in advance in response to a command of the control computer and to which the drives are to be moved in the next clock pulses; and, automatically outputting the sets of desired drive values to the plurality of drives at the fixed clock frequency; and, (b) storing the measurement values (XT, YT, ZT, Xm, Ym, Zm, Fix, Fiy, Fiz) and transmitting the measurement values (XT, YT, ZT, Xm, Ym, Zm, Fix, Fiy, Fiz) to the control computer in response to a command therefrom.
The basic idea of the invention is seen in that the desired drive values are computed in a control computer having an operating system without a real time characteristic. A subassembly is made available in which at least one of the following functions is executed: (a) several desired position values, which are to be executed in subsequent cycles, are stored in advance in response to commands of the control computer and the subassembly automatically transmits the desired position values, which are stored in advance, to the drives at the clock frequency; and, (b) several measured values, which are recorded at a pregiven clock frequency, are stored in the subassembly and are transmitted for evaluation to the control computer in response to a command of the control computer.
This affords the advantage that now almost all control functions can be carried out with a very cost-effective control computer having an operating system without a real time characteristic and that no desired drive values and/or measured values are lost.
Various values can be considered as possible desired drive values. The desired drive values can be desired position values (with which the drives are driven to move the probe head in the three coordinate directions) and desired measurement force values via which the measurement force generators are driven if the probe head is a measuring probe head. For example, for the case that a one-dimensionally measuring optical probe head is utilized as a probe head, which is attached to a rotational-pivot unit, the desired drive values can also be the desired rotational angles to be set by the rotational pivot unit.
The measurement values can likewise vary in many ways. Usually, the measurement values include the so-called machine position of the probe head, that is, the precise position of the probe head in the machine coordinate system. This machine position is achieved by reading off scales via corresponding scanning heads. The scales are mounted on the mechanics for moving the probe head in the individual coordinate directions and provide the machine positions in the individual measuring directions (x, y, z).
The measurement signal of the probe head is a usual measured value. In the case, for example, of a so-called measuring probe head (wherein a probe pin is journalled so as to be movable relative to the probe head), the measured value is the deflection of the probe pin out of its rest position. In an optical probe head, for example, the measured value is the spacing of the surface of the workpiece to the probe head. If the probe head is a measuring probe head with active measuring force generators, it can be additionally advantageous to detect the actually adjusted measuring forces. Further possible measurement values would be the adjusted rotational angle as well as the adjusted pivot angle of a rotation-pivot unit.
In an especially advantageous embodiment of the invention, the desired drive values and/or the measurement values are stored together with time data in the subassembly which outputs the time point in the measuring sequence at which the particular desired drive value is driven to and/or the measurement values are detected. In this way, the desired drive values, which are stored in the subassembly, as well as the measurement values can be arranged in time in the measuring sequence. The time information can, for example, be the cumulative number of clock flanks of the clock signal since the start of the measuring sequence. The time information for the measurement values can be simply determined by a counter which counts the clock flanks of the clock signal and which is reset at the start of the measuring sequence. In contrast, the time information of the desired drive values must be computed in advance by the control computer.
The components of the subassembly can be built up, in the simplest case, of simple hardware components and, for this purpose, can include at least one or several shift registers as well as, as required, a counter for the time information and/or a read-write subassembly via which the shift register is loaded and read out by the control computer as desired. With the clock pulse signal, the desired drive values and/or the detected measurement values are shifted further in the shift register(s), as required, together with the corresponding time data each by one memory location. The counter optionally supplies the above-mentioned time information and is likewise incremented at the clock frequency of the subassembly. The read-write subassembly, when driven by the computer, reads out or writes into the shift register.
In a somewhat more complex configuration, a single-chip controller can be additionally provided via which the shift registers and, if required, the counter and the read-write subassembly can be driven and administered. In this way, the performance of the individual components can be coordinated in a targeted manner and, if needed, also changed. Individual components or all components, such as the counter, can be emulated directly by the single-chip controller.
The object of the invention can also be realized only by a microprocessor which emulates the individual components completely by a corresponding program. To emulate the shift register and the read-write subassembly, the microprocessor can reserve a memory region of the microprocessor and organize the read-and-write operations controlled by the program in the same manner as the above-described operation of the shift register and of the read-write subassembly. Storage of the above-mentioned desired drive values in response to a command of the computer into different storage locations and the transmission of the desired drive values in correspondence to the applied clock signal to the drives as well as the storage of the measured measurement values at the correct clock frequency and the read-out of the measured values to the control computer are realized exclusively in the microprocessor.